1 PRINT"[147]":POKE53280,6:POKE53281,1 10 CL$=CHR$(147):R$=CHR$(18):RF$=CHR$(146):D1$=CHR$(17):U1$=CHR$(145):Q$="," 20 CR$=CHR$(13):U3$=U1$+U1$+U1$:D2$=D1$+D1$:OM$="(EQ,NE,GT,LT,GE,LE)" 40 M$="CAMDSX":PRINTCL$TAB(13)D2$R$"JOGGER'S LOG"RF$D1$ 50 INPUT" MAX # OF RUNS?[157]";RM 60 DIMDM%(12),C$(5,2),TB%(2,RM),N%(5),OP$(5),VL$(5),D$(5) 70 FORI=1TO12:READDM%(I):NEXT 80 FORJ=1TO2:FORI=1TO5:READC$(I,J):NEXTI:NEXTJ 90 GOSUB140:ONMGOTO700,760,800,860,920,220:GOTO90 100 PRINT" CAN'T DO PAST";R:FORI=1TO2000:NEXT:GOTO90 110 INPUT#15,A,B$,C,D:IFA=0THENRETURN 120 PRINTD2$"[147] ERROR ON DISK":PRINT A;B$;C;D:GOTO221 130 REM MAIN MENU 140 B$="":PRINT"[147] C[146] CREATE A FILE":PRINT" A[146] ADD A FILE" 150 PRINT" M[146] MODIFY A RECORD":PRINT" D[146] DELETE A RECORD" 160 PRINT" S[146] SHOW A RECORD":PRINT" X[146] EXIT" 170 INPUT" ";B$:FORM=1TO6:IFB$<>MID$(M$,M,1)THENNEXT 180 RETURN 190 REM MISC SUBROUTINES 200 B$="Y":PRINTD1$TAB(5):INPUT"ANOTHER(Y/N)";B$:PRINTCL$:RETURN 210 INPUT" NAME";F$:INPUT" RUN # ";P:CLOSE15:OPEN15,8,15:GOSUB290:RETURN 220 CLOSE1:CLOSE2:CLOSE15:POKE198,0:SYS198 221 CLOSE1:CLOSE2:CLOSE15:END 230 INPUT" NAME";F$:CLOSE15:CLOSE2:OPEN15,8,15:OPEN2,8,2,"#":GOSUB290:RETURN 240 FORZ=1TO5:PRINT"#";Z;R$C$(Z,1)RF$"="D$(Z)D1$:NEXTZ:RETURN 250 PRINTD1$" "R$"CR"RF$" TO CONTINUE":INPUT" ";B$:PRINTCL$:RETURN 260 PRINTD2$TAB(10)R$C$(Z,1)RF$,C$(Z,2):PRINT TAB(10):INPUTD$(Z):RETURN 270 REM DISK SUBROUTINES 280 REM GET INDEX FILE 290 OPEN1,8,0,"0:"+F$+".INDX,S,R":GOSUB110 300 FORN=1TO600:INPUT#1,TB%(1,N),TB%(2,N):IFST>64THENR=N-1:CLOSE1:RETURN 310 IFN>RMTHENPRINT"INCREASE MAX RUN#":GOTO221 320 NEXTN 330 REM SAVE INDEX FILE 340 OPEN1,8,1,"@0:"+F$+".INDX,S,W":GOSUB110 350 FORN=1TOR:PRINT#1,TB%(1,N)CR$TB%(2,N):GOSUB110:NEXTN:CLOSE1:CLOSE15:RETURN 360 REM FIND NEXT FREE TRACK & BLOCK 370 T=1:B=1 380 PRINT#15,"B-A:"0;T;B:INPUT#15,A,B$,C,D:IFA=65THENT=C:B=D:GOTO380 390 TB%(1,P)=T:TB%(2,P)=B 400 REM WRITE RUN# P 410 PRINT#2,D$(1)Q$D$(2)Q$D$(3)Q$D$(4)Q$D$(5) 420 PRINT#15,"B-W:"2;0;TB%(1,P);TB%(2,P):RETURN 430 REM READ RUN# P 440 T=TB%(1,P):B=TB%(2,P):PRINT#15,"B-R:"2;0;T;B 450 INPUT#2,D$(1),D$(2),D$(3),D$(4),D$(5):RETURN 460 REM END DISK SUBROUTINES 470 REM SELECTION 480 PRINTCL$D1$TAB(10)R$"SELECTION CRITERIA"RF$ 490 PRINTD2$TAB(10)"ENTER #,OPTION,VALUE"D2$ 500 FORX=1TO5:FORZ=1TO5:PRINTTAB(12)"#";Z;"IS FOR ";C$(Z,1):NEXTZ 510 PRINTTAB(7)D2$"OPTIONS ";OM$:N%(X)=0 511 INPUT" ";N%(X),OP$(X),VL$(X):PRINTCL$ 520 IFN%(X)=0THENX=X-1:RETURN 530 NEXTX:RETURN 540 REM CALC PACE 550 MI=VAL(MID$(TM$,1,2))*60+VAL(MID$(TM$,3,2)) 560 MI=MI+VAL(MID$(TM$,5,2))/60:PRINTTAB(5)DS$"MI";:PA=MI/VAL(DS$) 570 PM=INT(PA):PS=INT((PA-PM)*60):TM$=STR$(PM):A=LEN(TM$):B$=STR$(PS) 580 D=LEN(B$):DS$="":IFD=2THENDS$="0" 590 PRINT"..."MID$(TM$,2,A-1)":"DS$MID$(B$,2,D-1)" PACE":RETURN 600 REM CALC DAY# 610 U=VAL(LEFT$(DY$,2)):IFU<1ORU>12THENPRINTT"BAD MONTH";DY$:GOTO221 620 DA=DM%(U)+VAL(RIGHT$(DY$,2))*365+VAL(MID$(DY$,3,2)):RETURN 630 REM KEEP HIM HONEST 640 REM DATAENTRY 650 PRINTCL$TAB(10)"ENTER DATA ON RUN # ";P 660 FORZ=1TO5:D$(Z)="" 670 GOSUB260:IF(LEN(D$(Z))<>6)AND((Z=1)OR(Z=3))THENPRINT"BAD DATA":GOTO670 680 NEXTZ:GOSUB370:RETURN 690 REM CREATE A FILE 700 INPUT" NAME";F$:OPEN15,8,2,F$+".INDX,S,R":OPEN11,8,15:INPUT#11,A$,B$,C$ 710 IFB$<>"FILE NOT FOUND"THEN1400 720 CLOSE11:CLOSE15:OPEN15,8,15:OPEN2,8,2,"#" 730 FORP=1TORM:GOSUB650:GOSUB200:IFB$="Y"THENNEXTP 740 R=P:GOSUB340:CLOSE2:GOTO90 750 REM ADD AN ENTRY 760 GOSUB230:IFR+1>RMTHEN100 770 R=R+1:P=R:GOSUB650 780 GOSUB340:CLOSE2:PRINTCL$:GOTO90 790 REM MODIFY RUN# P 800 GOSUB210:CLOSE2:OPEN2,8,2,"#":IFP>RTHEN100 810 GOSUB440:PRINT"[147]":GOSUB240 820 Z=0:PRINTD1$TAB(5):INPUT"(0=END) MODIFY #";Z 821 IFZ>=6THENPRINT"[145] BAD # ":GOTO820 830 IFZ=0THENPRINTCL$:GOSUB410:CLOSE2:CLOSE15:GOTO90 840 GOSUB260:GOTO820 850 REM DELETE AN ENTRY 860 GOSUB210:IFP>RTHEN100 870 PRINT#15,"B-F:"0;TB%(1,P);TB%(2,P) 880 IF P3THEN960 950 PRINTCL$D1$TAB(3)"SET SCALE...ONE * = HOW MANY MILES" 951 INPUT" ";SC:SC=1/SC 960 FORP=1TOR:GOSUB440:IFX=0THEN1070 970 REM LOGICAL SELECTION 980 FL=1:FORW=1TOX:N=N%(W) 985 IF(N=1)OR(N=2)OR(N=3)THEN1041 990 IFOP$(W)="EQ"THENIFD$(N)<>VL$(W)THENFL=0:GOTO1050 1000 IFOP$(W)="NE"THENIFD$(N)=VL$(W)THENFL=0:GOTO1050 1010 IFOP$(W)="LT"THENIFD$(N)>=VL$(W)THENFL=0:GOTO1050 1020 IFOP$(W)="GT"THENIFD$(N)<=VL$(W)THENFL=0:GOTO1050 1030 IFOP$(W)="LE"THENIFD$(N)>VL$(W)THENFL=0:GOTO1050 1040 IFOP$(W)="GE"THENIFD$(N)VTHENFL=0:GOTO1050 1043 IFOP$(W)="NE"THENIFD=VTHENFL=0:GOTO1050 1044 IFOP$(W)="LT"THENIFD>=VTHENFL=0:GOTO1050 1045 IFOP$(W)="GT"THENIFD<=VTHENFL=0:GOTO1050 1046 IFOP$(W)="LE"THENIFD>VTHENFL=0:GOTO1050 1047 IFOP$(W)="GE"THENIFD23THENNS=23 1230 FORZ=2TONS:B$=B$+"*":NEXTZ 1240 PRINTB$:E=E+1:IFE>15THENE=0:GOSUB250 1250 IFE=0THENFORZ=1TO16:PRINT" ";:NEXT:PRINT"[145][145]" 1260 NEXTP 1270 CLOSE1:CLOSE2:CLOSE15 1280 IFTX<>1THENGOSUB250 1290 GOTO90 1300 DATA0,31,59,90,120,151,181,212,243,273,304,334 1310 DATADATE,DISTANCE,TIME,ROUTE,COMMENTS,(MMDDYY),(MILES),(HHMMSS) 1320 DATA(< 80 CHRS),(< 80 CHRS) 1400 PRINT" "F$" ALREADY EXISTS[145][145][145][145][145] ":CLOSE11:CLOSE15:GOTO700